<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>10 参数的补充</title>
</head>
<body>
    
</body>
<script>

    /* 
        参数个数的问题：
            * 形参和实参个数相等：一一匹配
            * 实参个数 > 形参个数 ：多余的实参不被接收，直接被忽略
            * 实参个数 < 形参个数 ：多余的形参如果被使用就是undefined

    */

    /* 
        当实参的个数不定的时候，可以借助系统提供的数组arguments实现接收实参

            * 数组：
                * 属性：length 长度
                * 下标： 从0开始
                * arguments只能取值不能赋值(只读)
    */

    // 两数求和
    // function sum(a, b) { // 形参：本质上是局部变量
    //     var c = a + b;
    //     return c;
    //     // console.log(a); // 4
    //     // console.log(b); // undefined:声明未赋值
    //     // console.log(a + b); // NaN
    // }

    // sum(4); // 实参


    // 用arguments实现上面函数的功能，使其灵活的接收n个参数做求和的运算
    function sum() {
        // arguments是存在函数体里面的一个数组，系统提供
        // console.log(arguments);
        // console.log(arguments[0]);

        var total = 0; // 存最终的和
        for (var i = 0; i < arguments.length; i++) {
            total += arguments[i];
        }
        return total;
    }

    var res = sum(7, 8);
    console.log(res);
</script>
</html>